001 /** 002 * Created by IntelliJ IDEA. 003 * User: Wei Wang 004 * Date: Jan 9, 2003 005 * Time: 4:22:21 PM 006 */ 007 package EVolve.util.equators; 008 009 public abstract class Set implements Cloneable{ 010 protected long [] data; 011 protected int size; 012 protected int emptySlot; 013 protected int entityNumber; 014 015 public int size() { 016 return size; 017 } 018 019 public long getElement(int i) { 020 return data[i]; 021 } 022 023 public boolean setFull() { 024 return emptySlot >= size; 025 } 026 027 public long getEntityId(int i) { 028 return data[i]; 029 } 030 031 public abstract void addElement(long element); 032 033 public abstract Set intersection(Set set); 034 035 public abstract Set union(Set set); 036 037 public abstract boolean exist(long element); 038 039 public abstract long getHashValue(); 040 041 public abstract Set newSet(); 042 043 public abstract boolean equals(Set set, float percent); 044 045 public Object clone() { 046 Set o = null; 047 try { 048 o = (Set)super.clone(); 049 } catch (CloneNotSupportedException e) { 050 e.printStackTrace(); 051 return null; 052 } 053 054 o.data = new long[data.length]; 055 for (int i=0; i<data.length; i++) 056 o.data[i] = data[i]; 057 return o; 058 } 059 }